1
Vidas de Objetos Locales: Automáticas frente a Estáticas
AI037Lesson 10
00:00

En el escenario del C++, cada objeto tiene una duración de vida—la vida del objeto. Esto define la duración durante la cual un objeto ocupa espacio en memoria. Dentro de un cuerpo de función, el comportamiento predeterminado para variables locales es ser automática, pero podemos ordenarles que sean estática para cambiar su destino.

1. Objetos Automáticos

Por defecto, las variables locales son objetos automáticos. Nacen (se inicializan) cuando la función ejecución alcanza su definición y mueren (se recuperan) cuando finaliza el bloque. Residen en la pila, lo que las hace frescas para cada llamada.

2. Objetos Estáticos Locales

Cuando usas la estática palabra clave, creas un objeto estático local. Se inicializan solo una vez—antes de la primera vez que el control pasa por su definición—y permanecen vivos hasta que termina el programa. Esto permite a una función "recordar" un estado sin contaminar el ámbito global.

Pila (Automática)[ valor_temporal ]Destruído al final del bloqueSegmento de Datos (Estático)[ valor_persistente ]Vive hasta el cierre del programa

3. La Trampa de la Recursividad

En una función recursiva, cada bucle recursivo crea una instancia distinta de sus objetos automáticos. Si la recursividad es profunda, esto consume un espacio significativo en la pila. Por el contrario, un estática objeto se comparte entre todos los niveles de esa recursividad.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>